FHIR © HL7.org  |  Server Home  |  FHIR Server FHIR Server 3.7.16  |  FHIR Version n/a  User: [n/a]

Resource StructureMap/FHIR Server from package hl7.fhir.uv.omop#current (47 ms)

Package hl7.fhir.uv.omop
Type StructureMap
Id Id
FHIR Version R5
Source http://hl7.org/fhir/uv/omop/https://build.fhir.org/ig/HL7/fhir-omop-ig/StructureMap-ObservationMap.html
Url http://hl7.org/fhir/uv/omop/StructureMap/ObservationMap
Version 0.1.0
Status draft
Date 2025-06-26T15:12:06+00:00
Name ObservationMap
Title Mapping Observation resource to Observation OMOP Domain
Experimental False
Realm uv
Authority hl7
Description MappingObservationresourcetoObservationOMOPDomain

Resources that use this resource

No resources found


Resources that this resource uses

No resources found



Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: StructureMap ObservationMap

/// url = 'http://hl7.org/fhir/uv/omop/StructureMap/ObservationMap'
/// name = 'ObservationMap'
/// title = 'Mapping Observation resource to  Observation OMOP Domain'
/// status = 'draft'

uses "http://hl7.org/fhir/StructureDefinition/Observation" alias Observation as source
uses "http://hl7.org/fhir/uv/omop/StructureDefinition/Observation" alias ObsTable as target

group Observe(source src : Observation, target tgt : ObsTable) {
  src where ('social-history' | 'imaging' | 'survey' | 'exam' | 'therapy' | 'activity' | 'procedure').supersetOf(Observation.category.coding.code) then {
    src.code as s -> tgt then {
      s.coding as sc -> tgt then {
        sc.code as a -> tgt.observation_concept_id = a;
      };
    }; // src.id as id -> tgt.observation_id = cast(id, "integer");
    src.effective : dateTime as a ->  tgt.observation_datetime = a,  tgt.observation_date = cast(a, 'date'); // src.subject as s -> tgt then {
    src.effective : instant as einst ->  tgt.observation_datetime = cast(einst, 'dateTime'),  tgt.observation_date = cast(einst, 'date');
    src.effective : Period as s -> tgt then {
      s.start as ss ->  tgt.observation_datetime = cast(ss, 'dateTime'),  tgt.observation_date = cast(ss, 'date');
    };
    src.issued as s where (s.toDate != src.effectiveDate) -> tgt.observation_source_value = cast(s, 'string');
    src.value : Quantity as s -> tgt then {
      s.value as a -> tgt.value_as_number = a;
      s.unit as b -> tgt.unit_concept_id = b;
    }; // src.performer as s -> tgt then {
    src.value : CodeableConcept as s -> tgt then {
      s.coding as sc -> tgt then {
        sc.code as a -> tgt.value_as_concept_id = a;
      };
    };
    src.value : string as b -> tgt.value_as_string = b;
    src.note as d -> tgt.observation_source_value = d;
  } "OnlyObs";
}


Source

{
  "resourceType" : "StructureMap",
  "id" : "ObservationMap",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ObservationMap</b></p><a name=\"ObservationMap\"> </a><a name=\"hcObservationMap\"> </a><pre class=\"fml\">\r\n<span style=\"color: #cc00cc\">/// <b>url</b> = </span><span style=\"color: blue\">'http://hl7.org/fhir/uv/omop/StructureMap/ObservationMap'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ObservationMap'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'Mapping Observation resource to Observation OMOP Domain'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'draft'</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">&quot; </span><b>alias </b>Observation <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"StructureDefinition-Observation.html\" title=\"Observation OMOP Table\">http://hl7.org/fhir/uv/omop/StructureDefinition/Observation</a><span style=\"color: navy\">&quot; </span><b>alias </b>ObsTable <b>as </b><b>target</b>\r\n\r\n<b>group </b>Observe<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>ObsTable<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<b> where </b>('social-history' | 'imaging' | 'survey' | 'exam' | 'therapy' | 'activity' | 'procedure').supersetOf(Observation.category.coding.code)<b> then</b><span style=\"color: navy\"> {\r\n</span> src.code<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> s.coding<b> as </b><span style=\"color: maroon\">sc</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> sc.code<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.observation_concept_id = <span style=\"color: maroon\">a</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">src.id as id -&gt; tgt.observation_id = cast(id, &quot;integer&quot;);</span>\r\n src.effective<span style=\"color: navy\"> : </span>dateTime<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span> tgt.observation_datetime = <span style=\"color: maroon\">a</span><span style=\"color: navy\">, </span> tgt.observation_date = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">a</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'date'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">src.subject as s -&gt; tgt then {</span>\r\n src.effective<span style=\"color: navy\"> : </span>instant<b> as </b><span style=\"color: maroon\">einst</span><span style=\"color: navy\"><b> -&gt; </b></span> tgt.observation_datetime = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">einst</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgt.observation_date = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">einst</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'date'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.effective<span style=\"color: navy\"> : </span>Period<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> s.start<b> as </b><span style=\"color: maroon\">ss</span><span style=\"color: navy\"><b> -&gt; </b></span> tgt.observation_datetime = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">ss</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgt.observation_date = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">ss</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'date'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n src.issued<b> as </b><span style=\"color: maroon\">s</span><b> where </b>(s.toDate != src.effectiveDate)<span style=\"color: navy\"><b> -&gt; </b></span>tgt.observation_source_value = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">s</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'string'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.value<span style=\"color: navy\"> : </span>Quantity<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> s.value<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.value_as_number = <span style=\"color: maroon\">a</span><span style=\"color: navy\">;</span>\r\n s.unit<b> as </b><span style=\"color: maroon\">b</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.unit_concept_id = <span style=\"color: maroon\">b</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">src.performer as s -&gt; tgt then {</span>\r\n src.value<span style=\"color: navy\"> : </span>CodeableConcept<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> s.coding<b> as </b><span style=\"color: maroon\">sc</span><span style=\"color: navy\"><b> -&gt; </b></span><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> sc.code<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.value_as_concept_id = <span style=\"color: maroon\">a</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n src.value<span style=\"color: navy\"> : </span>string<b> as </b><span style=\"color: maroon\">b</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.value_as_string = <span style=\"color: maroon\">b</span><span style=\"color: navy\">;</span>\r\n src.note<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -&gt; </b></span>tgt.observation_source_value = <span style=\"color: maroon\">d</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>&quot;OnlyObs&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode" : "brr"
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger" : 1,
      "_valueInteger" : {
        "extension" : [
          {
            "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical" : "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
          }
        ]
      }
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode" : "draft",
      "_valueCode" : {
        "extension" : [
          {
            "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical" : "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
          }
        ]
      }
    }
  ],
  "url" : "http://hl7.org/fhir/uv/omop/StructureMap/ObservationMap",
  "version" : "0.1.0",
  "name" : "ObservationMap",
  "title" : "Mapping Observation resource to Observation OMOP Domain",
  "status" : "draft",
  "date" : "2025-06-26T15:12:06+00:00",
  "publisher" : "HL7 International / Biomedical Research and Regulation",
  "contact" : [
    {
      "name" : "HL7 International / Biomedical Research and Regulation",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.hl7.org/Special/committees/rcrim"
        }
      ]
    }
  ],
  "description" : "MappingObservationresourcetoObservationOMOPDomain",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code" : "001",
          "display" : "World"
        }
      ]
    }
  ],
  "structure" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/Observation",
      "mode" : "source",
      "alias" : "Observation"
    },
    {
      "url" : "http://hl7.org/fhir/uv/omop/StructureDefinition/Observation",
      "mode" : "target",
      "alias" : "ObsTable"
    }
  ],
  "group" : [
    {
      "name" : "Observe",
      "input" : [
        {
          "name" : "src",
          "type" : "Observation",
          "mode" : "source"
        },
        {
          "name" : "tgt",
          "type" : "ObsTable",
          "mode" : "target"
        }
      ],
      "rule" : [
        {
          "name" : "OnlyObs",
          "source" : [
            {
              "context" : "src",
              "condition" : "('social-history' | 'imaging' | 'survey' | 'exam' | 'therapy' | 'activity' | 'procedure').supersetOf(Observation.category.coding.code)"
            }
          ],
          "rule" : [
            {
              "name" : "code",
              "source" : [
                {
                  "context" : "src",
                  "element" : "code",
                  "variable" : "s"
                }
              ],
              "target" : [
                {
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "tgt"
                    }
                  ]
                }
              ],
              "rule" : [
                {
                  "name" : "coding",
                  "source" : [
                    {
                      "context" : "s",
                      "element" : "coding",
                      "variable" : "sc"
                    }
                  ],
                  "target" : [
                    {
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "tgt"
                        }
                      ]
                    }
                  ],
                  "rule" : [
                    {
                      "name" : "code",
                      "source" : [
                        {
                          "context" : "sc",
                          "element" : "code",
                          "variable" : "a"
                        }
                      ],
                      "target" : [
                        {
                          "context" : "tgt",
                          "element" : "observation_concept_id",
                          "transform" : "copy",
                          "parameter" : [
                            {
                              "valueId" : "a"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "documentation" : "src.id as id -> tgt.observation_id = cast(id, \"integer\");"
            },
            {
              "name" : "effectiveDateTime",
              "source" : [
                {
                  "context" : "src",
                  "type" : "dateTime",
                  "element" : "effective",
                  "variable" : "a"
                }
              ],
              "target" : [
                {
                  "context" : "tgt",
                  "element" : "observation_datetime",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "a"
                    }
                  ]
                },
                {
                  "context" : "tgt",
                  "element" : "observation_date",
                  "transform" : "cast",
                  "parameter" : [
                    {
                      "valueId" : "a"
                    },
                    {
                      "valueString" : "date"
                    }
                  ]
                }
              ],
              "documentation" : "src.subject as s -> tgt then {"
            },
            {
              "name" : "effectiveInstant",
              "source" : [
                {
                  "context" : "src",
                  "type" : "instant",
                  "element" : "effective",
                  "variable" : "einst"
                }
              ],
              "target" : [
                {
                  "context" : "tgt",
                  "element" : "observation_datetime",
                  "transform" : "cast",
                  "parameter" : [
                    {
                      "valueId" : "einst"
                    },
                    {
                      "valueString" : "dateTime"
                    }
                  ]
                },
                {
                  "context" : "tgt",
                  "element" : "observation_date",
                  "transform" : "cast",
                  "parameter" : [
                    {
                      "valueId" : "einst"
                    },
                    {
                      "valueString" : "date"
                    }
                  ]
                }
              ]
            },
            {
              "name" : "effectivePeriod",
              "source" : [
                {
                  "context" : "src",
                  "type" : "Period",
                  "element" : "effective",
                  "variable" : "s"
                }
              ],
              "target" : [
                {
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "tgt"
                    }
                  ]
                }
              ],
              "rule" : [
                {
                  "name" : "start",
                  "source" : [
                    {
                      "context" : "s",
                      "element" : "start",
                      "variable" : "ss"
                    }
                  ],
                  "target" : [
                    {
                      "context" : "tgt",
                      "element" : "observation_datetime",
                      "transform" : "cast",
                      "parameter" : [
                        {
                          "valueId" : "ss"
                        },
                        {
                          "valueString" : "dateTime"
                        }
                      ]
                    },
                    {
                      "context" : "tgt",
                      "element" : "observation_date",
                      "transform" : "cast",
                      "parameter" : [
                        {
                          "valueId" : "ss"
                        },
                        {
                          "valueString" : "date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name" : "issued",
              "source" : [
                {
                  "context" : "src",
                  "element" : "issued",
                  "variable" : "s",
                  "condition" : "(s.toDate != src.effectiveDate)"
                }
              ],
              "target" : [
                {
                  "context" : "tgt",
                  "element" : "observation_source_value",
                  "transform" : "cast",
                  "parameter" : [
                    {
                      "valueId" : "s"
                    },
                    {
                      "valueString" : "string"
                    }
                  ]
                }
              ]
            },
            {
              "name" : "valueQuantity",
              "source" : [
                {
                  "context" : "src",
                  "type" : "Quantity",
                  "element" : "value",
                  "variable" : "s"
                }
              ],
              "target" : [
                {
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "tgt"
                    }
                  ]
                }
              ],
              "rule" : [
                {
                  "name" : "value",
                  "source" : [
                    {
                      "context" : "s",
                      "element" : "value",
                      "variable" : "a"
                    }
                  ],
                  "target" : [
                    {
                      "context" : "tgt",
                      "element" : "value_as_number",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "a"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name" : "unit",
                  "source" : [
                    {
                      "context" : "s",
                      "element" : "unit",
                      "variable" : "b"
                    }
                  ],
                  "target" : [
                    {
                      "context" : "tgt",
                      "element" : "unit_concept_id",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "b"
                        }
                      ]
                    }
                  ]
                }
              ],
              "documentation" : "src.performer as s -> tgt then {"
            },
            {
              "name" : "valueCodeableConcept",
              "source" : [
                {
                  "context" : "src",
                  "type" : "CodeableConcept",
                  "element" : "value",
                  "variable" : "s"
                }
              ],
              "target" : [
                {
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "tgt"
                    }
                  ]
                }
              ],
              "rule" : [
                {
                  "name" : "coding",
                  "source" : [
                    {
                      "context" : "s",
                      "element" : "coding",
                      "variable" : "sc"
                    }
                  ],
                  "target" : [
                    {
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "tgt"
                        }
                      ]
                    }
                  ],
                  "rule" : [
                    {
                      "name" : "code",
                      "source" : [
                        {
                          "context" : "sc",
                          "element" : "code",
                          "variable" : "a"
                        }
                      ],
                      "target" : [
                        {
                          "context" : "tgt",
                          "element" : "value_as_concept_id",
                          "transform" : "copy",
                          "parameter" : [
                            {
                              "valueId" : "a"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name" : "valueString",
              "source" : [
                {
                  "context" : "src",
                  "type" : "string",
                  "element" : "value",
                  "variable" : "b"
                }
              ],
              "target" : [
                {
                  "context" : "tgt",
                  "element" : "value_as_string",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "b"
                    }
                  ]
                }
              ]
            },
            {
              "name" : "note",
              "source" : [
                {
                  "context" : "src",
                  "element" : "note",
                  "variable" : "d"
                }
              ],
              "target" : [
                {
                  "context" : "tgt",
                  "element" : "observation_source_value",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "d"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

XIG built as of ??metadata-date??. Found ??metadata-resources?? resources in ??metadata-packages?? packages.